// 属性管理模块的接口
import request from "@/utils/request";
import type { CategoryResData, CateId, AttrResData, AttrObj } from '@/api/product/attr/types';

enum API {
    // 一级分类接口
    CATE1_URL = '/admin/product/getCategory1',
    // 二级分类接口
    CATE2_URL = '/admin/product/getCategory2/',
    // 三级分类接口
    CATE3_URL = '/admin/product/getCategory3/',
    // 获取分类下已有属性接口
    HASATTR_URL = '/admin/product/attrInfoList/',
    // 添加和修改属性接口
    ADDOREDITATTR_URL = '/admin/product/saveAttrInfo',
    // 删除属性的接口
    DELETEATTR_URL = '/admin/product/deleteAttr/'
}

// 获取一级分类数据的方法
export const reqPrimCategory = (): Promise<CategoryResData> => request({
    url: API.CATE1_URL,
    method: 'GET'
});
// 获取二级分类数据的方法(根据一级分类id)
export const reqSecCategory = (category1Id: CateId): Promise<CategoryResData> => request({
    url: API.CATE2_URL + category1Id,
    method: 'GET'
});
// 获取三级分类数据的方法(根据二级分类id)
export const reqThirdCategory = (category2Id: CateId): Promise<CategoryResData> => request({
    url: API.CATE3_URL + category2Id,
    method: 'GET'
});
// 获取分类下已有的属性
export const reqHasAttr = (category1Id: CateId, category2Id: CateId, category3Id: CateId): Promise<AttrResData> => request({
    url: API.HASATTR_URL + `${category1Id}/${category2Id}/${category3Id}`,
    method: 'GET'
});

// 新增或修改已有属性的方法
export const reqAddOrEditAttr = (data: AttrObj): any => request({
    url: API.ADDOREDITATTR_URL,
    method: 'POST',
    data
});
// 删除已有属性的方法
export const reqDeleteAttr = (attrId: number) => request({
    url: API.DELETEATTR_URL + attrId,
    method: 'DELETE'
});